package droidhouseclone;

import java.awt.*;
import java.util.*;
import javax.swing.*;

/**
 *
 * @author Lorenzo Ferri
 */
public class VolumeView extends JPanel implements Observer {

    //Attributi privati della classe
    private JProgressBar progressVol;
    private JLabel textVol;

    VolumeView(StateObservable model) {


        //Inizializzo gli attributi
        textVol = new JLabel();
        progressVol = new JProgressBar();

        //Setto la grandezza del pannello
        this.setSize(60, 110);

        //Imposto i valori della progressbar (Orientamento,Dimensione,Valore Massimo)
        progressVol.setOrientation(JProgressBar.VERTICAL);
        progressVol.setPreferredSize(new Dimension(20, 65));
        progressVol.setMaximum(100);

        //Setto il testo predefinito
        textVol.setText("0%");

        //aggiungo i componenti
        add(textVol);
        add(progressVol);

        //aggiungo la classe agli observer
        model.addObserver(this);


    }

    public void update(Observable o, Object arg) {
        StateObservable model = (StateObservable) o;
        //Controllo lo stato attuale del subject
        switch (model.getState()) {

            case StateObservable.CHANGEVOLUME:
                //Aggiorno il valore del volume
                int vol = model.getVolume();
                this.textVol.setText(vol + "%");
                progressVol.setValue(vol);
                break;
            default:
                break;

        }
    }
}
